package com.un.ebs.sys.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.un.ebs.core.metadata.DbField;
import lombok.Data;
import org.springframework.stereotype.Component;

import java.io.Serializable;
import java.util.Date;

/**
 * (Function)表实体类
 *
 * @author liubo
 * @since 2021-01-08 09:12:35
 */
@Data
@Component
@TableName("sys_function")
@SuppressWarnings("serial")
public class Function extends Model<Function> {

    @TableId(value = "id", type = IdType.UUID)
    private String id;


    @DbField(name = "fun_name", length = 100, precision = 0)
    private String funName;

    @DbField(name = "fun_context", length = -1, precision = 0)
    private String funContext;

    @DbField(name = "version_no", length = -1, precision = 0)
    private Integer versionNo;

    @DbField(name = "request_path", length = 100, precision = 0)
    private String requestPath;

    @DbField(name = "tag_name", length = 100, precision = 0)
    private String tagName;

    @DbField(name = "release_status", length = -1, precision = 0)
    private Boolean releaseStatus;

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DbField(name = "release_time", length = -1, precision = 0)
    private Date releaseTime;

    @DbField(name = "remark", length = 500, precision = 0)
    private String remark;

    @TableField(fill = FieldFill.INSERT)
    @DbField(name = "create_time", length = -1, precision = 0)
    private Date createTime;

    @TableField(fill = FieldFill.INSERT)
    @DbField(name = "create_at", length = 40, precision = 0)
    private String createAt;

    @TableField(fill = FieldFill.INSERT)
    @DbField(name = "create_at_name", length = 100, precision = 0)
    private String createAtName;

    @DbField(name = "last_update_at", length = 40, precision = 0)
    private String lastUpdateAt;

    @DbField(name = "last_update_at_name", length = 100, precision = 0)
    private String lastUpdateAtName;

    @DbField(name = "last_update_time", length = -1, precision = 0)
    private Date lastUpdateTime;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}